package com.neuedu.corejava.ch9;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern;

public class DataClass {

	public static void main(String[] args) {

		//时间
		//如何获取当前系统时间
		Date now=new Date();
		System.out.println(now.getTime());
		
		long time=System.currentTimeMillis();//unix-在有些数据设计中，使用long保存时间
		now =new Date(time);
		System.out.println(time);
		
		//日历
		Calendar calendar= Calendar.getInstance();
		//年 月  日
		
		String  date=new Integer(calendar.get(Calendar.YEAR)).toString();
		System.out.println(date);
		
		//使用calendar 读取的月份是：0~11
		String  date1=new Integer(calendar.get(Calendar.MONTH)+1).toString();
		System.out.println(date1);
		
		date1=new Integer(calendar.get(Calendar.DATE)).toString();
		System.out.println(date1);
		//星期是从星期天开始的，范围：1~7；
		date1=new Integer(calendar.get(Calendar.DAY_OF_WEEK)-1).toString();
		System.out.println(date1);
		
		//时 分 秒
		//12小时进制
		date1=new Integer(calendar.get(Calendar.HOUR)).toString();
		System.out.println(date1);
		
		//24小时进制
		date1=new Integer(calendar.get(Calendar.HOUR_OF_DAY)).toString();
		System.out.println(date1);
		
		//分
		date1=new Integer(calendar.get(Calendar.MINUTE)).toString();
		System.out.println(date1);
		
		//秒
		date1=new Integer(calendar.get(Calendar.SECOND)).toString();
		System.out.println(date1);
		
		//毫秒
		date1=new Integer(calendar.get(Calendar.MILLISECOND)).toString();
		System.out.println(date1);
		
		
		//时间计算
		//java.util.Date没有提供时间计算方法，时间计算一般使用Calendar进行计算
		
		//3天后
		calendar.set(calendar.DATE,calendar.get(Calendar.DATE)+3 );
		System.out.println(calendar.get(Calendar.DATE));
		
		//3个月前
		calendar.set(calendar.MONTH,calendar.get(Calendar.MONTH)-3 );
		System.out.println(calendar.get(Calendar.MONTH)+1);
		
		//5年以后
		calendar.set(calendar.YEAR,calendar.get(Calendar.YEAR)+5 );
		System.out.println(calendar.get(Calendar.YEAR));
		
		//时间与时间字符串间的转换
		//2018-8-7 15:15:15.234
		//2018年8月7日  15时15分15秒234毫秒
		// yyyy-年，MM-月 ，dd-日 ，HH-24小时,mm-分钟，SSS-毫秒
		String pattern="yyyy-MM-dd HH:mm:ss.SSS";
		SimpleDateFormat sdf=new SimpleDateFormat(pattern);
		try {
			Date date2=sdf.parse("2018-8-7 15:15:15.234");
			System.out.println(date2);
			pattern="yyyy年MM月dd日HH时mm分ss秒SSS毫秒 EE";
			sdf.applyPattern(pattern);
			String daString=sdf.format(date2);
			System.out.println(daString);
			
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
	}

}
